package main.动态规划;

import java.util.ArrayList;
import java.util.List;

/**
 * @author tmh
 * @date 2024/8/6 17:26
 * @description
 */
public class T118杨辉三角 {
    public List<List<Integer>> generate(int numRows) {
        //感觉就像是赤裸裸的逻辑运算，需要知道如何求和这道题就简单了
        List<List<Integer>> result = new ArrayList<>();
        //1.添加第一行的元素
        List<Integer> firstRow =new ArrayList<>();
        firstRow.add(1);
        result.add(firstRow);
        for (int i = 1; i < numRows; i++) {
            List<Integer> list = new ArrayList<>();
            //添加每一行的第一个元素为1
            list.add(1);
            for (int j = 1; j < i; j++) {
                //需要填充的数字为左上角的值加上正上方的值
                list.add(result.get(i-1).get(j-1)+result.get(i-1).get(j));
            }
            //添加每一行的最后一个元素的值为1
            list.add(1);
            result.add(list);
        }
        return result;
    }
}
